Nowadays, the advent of cloud-based computing architectures has created new requirements for rapid and scalable deployment of resources for web stores, media outlets, and other on-line sites or services. In general, a cloud-based architecture determines deployment of a set of resources, such as power, number of CPUs (Central Processing Units), size of storages, operating systems, bandwidth, . . . etc. Those resources can be combined or allied together for a specific workload or a group of workloads. The workload may be an email service, operation of an ERP (Enterprise Resource Planning) system, data archiving, a video streaming service, or other services mentioned above. An optimized utilization of resources for these workloads in a data center or a cloud storage system can reduce waste of resources without violating the requirement of workload performance in the SLA (Service Level Agreement). Furthermore, cost of power consumption, maintenance and new hardware supplement can be lessened.
Optimized utilization of the resources is not an easy task. This is because all the workloads are changing with time. Dynamic deployment of the resources is not able to catch up with the speed of changes. More resources for the surprising peak requirements from the operating workloads may be a safe way but not an economic one. Meanwhile, some hardware devices, e.g. HDDs (Hard Drive Disks) or SSDs (Solid State Disks) are consumables. Periodical or from-time-to-time replacement of the worn hardware devices makes it more difficult to predict the real capacities of the resources. Therefore, optimized utilization of the resources for workloads applied is a big concern for operating a data center or a cloud storage system.
There are many prior arts related to the solution for the problem mentioned above. For example, US Patent Publication No. 2011/0154353 discloses a method for a demand-driven workload scheduling optimization of shared resources used to execute tasks submitted to a computer system. Key steps of the invention includes: receiving a request to execute a task (said request including the task's required execution time and resource requirements); selecting a prospective execution schedule meeting the required execution time and a computer system resource meeting the resource requirement, determining (in response to the request) a task execution price for using the computer system resource according to the prospective execution schedule, and scheduling the task to execute using the computer system resource according to the prospective execution schedule if the price is accepted. The price varies as a function of availability of the computer system resource at times corresponding to the prospective execution schedule, said availability being measured at the time the price is determined. As to application of the disclosed invention to a data center, the task is the workload applied. The price is a measurement for deciding which task (workload) should use available resources. Optimized utilization of the resources can be done as long as the price keeps at the lowest level.
There are some limitations to the patent application. First, the workload should be “flexible” enough with time. It means that requirements of the workload should be fulfilled anytime, or at least after a while from a request for the workload is received. For some workloads which are time-inflexible, namely, the requirements of the workloads are rigid and need to be processed as soon as possible, they are not applicable for “lower prices” (or priority) being accepted. Secondly, price is hard to be quantized for each workload. It is subjective to decide the price. There is no objective standard for doing so.
There is no suitable solution for achieving an optimized utilization for time-inflexible workload-consumed resources in a data center or a cloud storage. An innovative method or a system using the method to provide such solution is desired.